package pasientlosjen.pages;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;

import org.apache.tapestry5.annotations.Property;

import pasientlosjen.auth.KreverInnloggetBruker;
import pasientlosjen.entities.Artikkel;
import pasientlosjen.entities.Bilde;
import pasientlosjen.services.EMF;

/**
 * Start page of application pasienlosjen_web.
 */
@KreverInnloggetBruker
public class Index {
	@Property
	private Artikkel artikkel;
	@Property
	private List<Artikkel> artikkler;
	@Property
	private Bilde bilde;

	void onActivate() {
		artikkler = new ArrayList<Artikkel>();

		artikkel = new Artikkel();
		artikkel.setOverskrift("Noe er på gang");
		artikkel
				.setTekst("Som du ser, så er det noe på gang her. Hjemmesiden til pasientlosjen er faktisk oppe. Mye funksjonalitet mangler, og medlemslistene er ikke akkurat oppdaterte, men ting er på vei :)");
		artikkler.add(artikkel);

		artikkel = new Artikkel();
		artikkel.setOverskrift("Hjemmesiden kjører hos onkel Google");
		artikkel
				.setTekst("Når dette vises, så betyr det at møkkakoden som siggen har trøkka sammen faktisk er akseptert og kjører. Hører vi milepæl?");
		artikkler.add(artikkel);
		artikkel = new Artikkel();
		artikkel.setOverskrift("Sikkerheten begynner å komme på plass");
		artikkel
				.setTekst("Da var en helt basic innlogging på plass. Tenker den blir byttet ut med en facebook innlogging (eller liknende) etterhvert, men det er jo en slik innlogging som var beskrevet i medlemsparagrafene. Neste steg: databasemorro");
		// artikkler.add(artikkel);

		EntityManager em = EMF.get().createEntityManager();
		try {
			em.persist(artikkel);
			em.getTransaction().commit();

		} catch (Exception e) {
		} finally {
			em.close();
		}
		artikkel = null;
		em = EMF.get().createEntityManager();
		List<Artikkel> resultList = em.createQuery("Select a from Artikkel a").getResultList();
		artikkel = new Artikkel();
		artikkel.setOverskrift("antall elementer");
		artikkel.setTekst("" + resultList.size());
		artikkler.add(artikkel);
		em.close();
	}

	public Date getCurrentTime() {
		return new Date();
	}
}
